package com.tangkun.environment.application;

import android.text.TextUtils;

import com.tangkun.environment.entity.common.CommonDatasReturn;
import com.tangkun.environment.entity.login.DepartmentscopeIndexReturn;
import com.tangkun.environment.entity.token.LoginReturn;

import java.util.ArrayList;
import java.util.List;

public class Session {

    /**
     * 通用 地图区域范围
     */
    private List<DepartmentscopeIndexReturn.DataBean> departmentscopeIndexDataList;
    /**
     * 通用 用户信息
     */
    private LoginReturn.UserInfo userInfo;

    /**
     * 通用 公共字典
     */
    private CommonDatasReturn.CommonDatas commonDatas;


    private static Session session = new Session();

    private Session() {

    }

    public static Session getInstance() {
        return session;
    }

    public void destroy() {
        session = null;
        session = new Session();
    }

    /*****************************地图区域范围 start****************************/
    /**
     * 地图区域范围
     */
    public List<DepartmentscopeIndexReturn.DataBean> getDepartmentscopeIndexReturn() {
        return departmentscopeIndexDataList;
    }

    /**
     * 地图区域范围
     */
    public void setDepartmentscopeIndexReturn(List<DepartmentscopeIndexReturn.DataBean> departmentscopeIndexDataList) {
        this.departmentscopeIndexDataList = departmentscopeIndexDataList;
    }
    /*****************************地图区域范围 end****************************/


    /*****************************用户信息 start****************************/
    /**
     * @return 用户信息
     */
    public LoginReturn.UserInfo getUserInfo() {
        return userInfo;
    }

    /**
     * 设置用户信息
     *
     * @param userInfo 用户信息
     */
    public void setUserInfo(LoginReturn.UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    /**
     * @return 用户ID
     */
    public String getUserId() {
        if (userInfo != null && !TextUtils.isEmpty(userInfo.ids)) {
            return userInfo.ids;
        }
        return "";
    }

    /**
     * @return 用户名 手机号
     */
    public String getUserName() {
        if (userInfo != null && !TextUtils.isEmpty(userInfo.username)) {
            return userInfo.username;
        }
        return "";
    }

    /**
     * @return 用户名 昵称
     */
    public String getUserNickName() {
        if (userInfo != null && !TextUtils.isEmpty(userInfo.nickname)) {
            return userInfo.nickname;
        }
        return "";
    }

    /**
     * roleid	EpUser：企业用户；StreetInspector：街道巡查员； AssociateInspector：协会巡查员；SuperVisor：Admin监督员
     *
     * @return 用户身份
     */
    public String getUserRole() {
        if (userInfo != null) {
            if (!TextUtils.isEmpty(userInfo.roleid)) {
                if (userInfo.roleid.equals("EpUser")) {//企业用户
                    return "企业用户";
                } else if (userInfo.roleid.equals("StreetInspector")) {//街道巡查员
                    return "街道巡查员";
                } else if (userInfo.roleid.equals("AssociateInspector")) {//协会巡查员
                    return "协会巡查员";
                } else if (userInfo.roleid.equals("SuperVisor")) {//监督员
                    return "监督员";
                } else if (userInfo.roleid.equals("Admin")) {//管理员／监督员
                    return "监督员";
                }
            }
            return "企业用户";
        }
        return "企业用户";
    }

    /**
     * @return 用户性别 man男 female女
     */
    public String getUserSex() {
        if (userInfo != null) {
            if (!TextUtils.isEmpty(userInfo.sex)) {
                if (userInfo.sex.equals("man")) {
                    return "男";
                } else if (userInfo.sex.equals("female")) {
                    return "女";
                }
                return "男";
            }
        }
        return "男";
    }


    /**
     * @return 电话
     */
    public String getUserMobile() {
        if (userInfo != null && !TextUtils.isEmpty(userInfo.mobile)) {
            return userInfo.mobile;
        }
        return "";
    }

    /**
     * @return 用户头像
     */
    public String getUserHeadPicture() {
        if (userInfo != null && !TextUtils.isEmpty(userInfo.img)) {
            return userInfo.img;
        }
        return "";
    }

    /**
     * @return 用户最后更改资料时间
     */
    public String getUserLastModificationTime() {
        if (userInfo != null && !TextUtils.isEmpty(userInfo.updatetime)) {
            return userInfo.updatetime;
        }
        return "";
    }

    /**
     * @return 用户绑定企业集合
     */
    public List<LoginReturn.UserInfo.BindlistBean> getUserBindlist() {
        List<LoginReturn.UserInfo.BindlistBean> list = new ArrayList<LoginReturn.UserInfo.BindlistBean>();
        if (userInfo != null && userInfo.bindlist != null) {
            list.addAll(userInfo.bindlist);
            return list;
        }
        return list;
    }


    /*****************************用户信息 start****************************/


    /*****************************公共字典 start****************************/
    /**
     * @return 公共字典
     */
    public CommonDatasReturn.CommonDatas getCommonDatas() {
        return commonDatas;
    }

    /**
     * 设置公共字典
     *
     * @param commonDatas 公共字典
     */
    public void setCommonDatas(CommonDatasReturn.CommonDatas commonDatas) {
        this.commonDatas = commonDatas;
    }

    /**
     * WebView前缀
     *
     * @return h5BaseUrl
     */
    public String getH5BaseUrl() {
        if (commonDatas != null && !TextUtils.isEmpty(commonDatas.h5BaseUrl)) {
            return commonDatas.h5BaseUrl;
        }
        return "";
    }

    /**
     * 图片前缀
     *
     * @return resourceBaseUrl
     */
    public String getResourceBaseUrl() {
        if (commonDatas != null && !TextUtils.isEmpty(commonDatas.resourceBaseUrl)) {
            return commonDatas.resourceBaseUrl;
        }
        return "";
    }


    /**
     * @return 传染病集合
     */
    public List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> getCsb() {
        List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> itemsBean = new ArrayList<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean>();
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("csb")) {//是不是传染病判断
                    //非空判断
                    if (commonDatas.systemParames.get(i).items == null) {
                        return itemsBean;
                    } else {
                        //设置选中状态为为选中
                        for (CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean itemsBean1 : commonDatas.systemParames.get(i).items) {
                            itemsBean1.isSelected = false;
                        }
                        return commonDatas.systemParames.get(i).items;
                    }
                }
            }
        }
        return itemsBean;
    }

    /**
     * 首页智能预警 患者分组列表筛选数据来源
     *
     * @return 伴随疾病集合
     */
    public List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> getBsjb() {
        List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> itemsBean = new ArrayList<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean>();
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("bsjb")) {//是不是便随疾病判断
                    //非空判断
                    if (commonDatas.systemParames.get(i).items == null) {
                        return itemsBean;
                    } else {
                        return commonDatas.systemParames.get(i).items;
                    }
                }
            }
        }
        return itemsBean;
    }

    /**
     * 首页数据资料 原发病列表筛选数据来源
     *
     * @return 原发病集合
     */
    public List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> getYfb() {
        List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> itemsBean = new ArrayList<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean>();
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("yfb")) {//是不是原发病判断
                    //非空判断
                    if (commonDatas.systemParames.get(i).items == null) {
                        return itemsBean;
                    } else {
                        return commonDatas.systemParames.get(i).items;
                    }
                }
            }
        }
        return itemsBean;
    }


    /**
     * 根据treatmentType获取到公共字典里的方式名称
     * EnumPatientTreatmentType
     *
     * @param treatmentType
     * @return
     */
    public String getTreatmentType(int treatmentType) {
        if (commonDatas.enums != null) {
            for (int i = 0; i < commonDatas.enums.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.enums.get(i).name) && (commonDatas.enums.get(i).name).equals("EnumPatientTreatmentType")) {//是不是治疗方式判断
                    if (commonDatas.enums.get(i).items != null) {
                        for (CommonDatasReturn.CommonDatas.EnumsBean.ItemsBeanX itemBeanX : commonDatas.enums.get(i).items) {
                            if (itemBeanX.value == treatmentType) {
                                if (!TextUtils.isEmpty(itemBeanX.name)) {
                                    return itemBeanX.name;
                                }
                            }
                        }
                    }
                }
            }
        }
        return "";
    }

    /**
     * 病情描述 精神状态
     *
     * @return 精神状态集合
     */
    public List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> getJszk() {
        List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> itemsBean = new ArrayList<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean>();
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("jszk")) {//是不是精神状态判断
                    //非空判断
                    if (commonDatas.systemParames.get(i).items == null) {
                        return itemsBean;
                    } else {
                        return commonDatas.systemParames.get(i).items;
                    }
                }
            }
        }
        return itemsBean;
    }

    /**
     * 病情描述 精神状态
     * 根据sy获取到公共字典里的精神状态
     *
     * @param id
     * @return
     */
    public String getJszk(int id) {
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("jszk")) {//是不是精神状态判断
                    if (commonDatas.systemParames.get(i).items != null) {
                        for (CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean itemsBean : commonDatas.systemParames.get(i).items) {
                            if (itemsBean.id == id) {
                                if (!TextUtils.isEmpty(itemsBean.name)) {
                                    return itemsBean.name;
                                }
                            }
                        }
                    }
                }
            }
        }
        return "";
    }

    /**
     * 病情描述 食欲
     *
     * @return 食欲集合
     */
    public List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> getSy() {
        List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> itemsBean = new ArrayList<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean>();
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("sy")) {//是不是食欲判断
                    //非空判断
                    if (commonDatas.systemParames.get(i).items == null) {
                        return itemsBean;
                    } else {
                        return commonDatas.systemParames.get(i).items;
                    }
                }
            }
        }
        return itemsBean;
    }

    /**
     * 病情描述 食欲
     * 根据sy获取到公共字典里的食欲
     *
     * @param id
     * @return
     */
    public String getSy(int id) {
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("sy")) {//是不是食欲判断
                    if (commonDatas.systemParames.get(i).items != null) {
                        for (CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean itemsBean : commonDatas.systemParames.get(i).items) {
                            if (itemsBean.id == id) {
                                if (!TextUtils.isEmpty(itemsBean.name)) {
                                    return itemsBean.name;
                                }
                            }
                        }
                    }
                }
            }
        }
        return "";
    }

    /**
     * 病情描述 睡眠
     *
     * @return 睡眠集合
     */
    public List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> getHzsm() {
        List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> itemsBean = new ArrayList<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean>();
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("hzsm")) {//是不是睡眠判断
                    //非空判断
                    if (commonDatas.systemParames.get(i).items == null) {
                        return itemsBean;
                    } else {
                        return commonDatas.systemParames.get(i).items;
                    }
                }
            }
        }
        return itemsBean;
    }

    /**
     * 病情描述 睡眠
     * 根据hzsm获取到公共字典里的睡眠
     *
     * @param id
     * @return
     */
    public String getHzsm(int id) {
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("hzsm")) {//是不是睡眠判断
                    if (commonDatas.systemParames.get(i).items != null) {
                        for (CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean itemsBean : commonDatas.systemParames.get(i).items) {
                            if (itemsBean.id == id) {
                                if (!TextUtils.isEmpty(itemsBean.name)) {
                                    return itemsBean.name;
                                }
                            }
                        }
                    }
                }
            }
        }
        return "";
    }

    /**
     * 病情描述 水肿情况
     *
     * @return 水肿情况集合
     */
    public List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> getSzqk() {
        List<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean> itemsBean = new ArrayList<CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean>();
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("szqk")) {//是不是水肿情况判断
                    //非空判断
                    if (commonDatas.systemParames.get(i).items == null) {
                        return itemsBean;
                    } else {
                        return commonDatas.systemParames.get(i).items;
                    }
                }
            }
        }
        return itemsBean;
    }

    /**
     * 病情描述 水肿情况
     * 根据hzsm获取到公共字典里的水肿情况
     *
     * @param id
     * @return
     */
    public String getSzqk(int id) {
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("szqk")) {//是不是水肿情况判断
                    if (commonDatas.systemParames.get(i).items != null) {
                        for (CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean itemsBean : commonDatas.systemParames.get(i).items) {
                            if (itemsBean.id == id) {
                                if (!TextUtils.isEmpty(itemsBean.name)) {
                                    return itemsBean.name;
                                }
                            }
                        }
                    }
                }
            }
        }
        return "";
    }

    /**
     * 病情描述 腹透液浓度
     * 根据hzsm获取到公共字典里的腹透液浓度
     *
     * @param txndList
     * @return
     */
    public String getTxnd(List<Integer> txndList) {
        if (txndList == null) {
            return "";
        }
        String result = "";
        if (commonDatas.systemParames != null) {
            for (int i = 0; i < commonDatas.systemParames.size(); i++) {
                if (!TextUtils.isEmpty(commonDatas.systemParames.get(i).typeKey) && (commonDatas.systemParames.get(i).typeKey).equals("txnd")) {//是不是腹透液浓度判断
                    if (commonDatas.systemParames.get(i).items != null) {
                        for (CommonDatasReturn.CommonDatas.SystemParamesBean.ItemsBean itemBeanX : commonDatas.systemParames.get(i).items) {
                            for (int j = 0; j < txndList.size(); j++) {
                                int txnd = txndList.get(j);
                                if (itemBeanX.id == txnd) {
                                    if (!TextUtils.isEmpty(itemBeanX.name)) {
                                        if (TextUtils.isEmpty(result)) {
                                            result = itemBeanX.name;
                                        } else {
                                            result = result + "、" + itemBeanX.name;
                                        }
                                    }
                                }
                            }
                        }
                        return result;
                    }
                }
            }
        }
        return result;
    }


    /*****************************公共字典 end****************************/

}
